home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 5
/
The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO
/
amiga
/
tempdemo.lha
/
Rexx
/
200YearCalendar.rexx
next >
Wrap
OS/2 REXX Batch file
|
1994-05-22
|
28KB
|
835 lines
/*
_____
/ __ _ _ __ __ __ _ __ ____
\ / _/ \ / / / / / / __
___\ / \ / __ / / / __
/ / \ / / / / \ /
______________________________________________________________________________
200 Year Calendar, ⌐ 1993 by Casa Nova, Sysop of Skyline BBS Berlin.
It was written for TempestBBS, higher than v1.4u. Started: 08-28-93
Copy to TempRexx: and enter in your optionals TempRexx:PN-200Years.rexx
Ideen:
- Logon-/Logoff-Msgs ausschalten beim Ausfuellen!
- InterNode Msgs ausschalten (Write Protected mail -> NODE:)
Kill nicht vergessen!!!
- ...
______________________________________________________________________________ */
/*TRACE RESULTS*/ /*--------------------------*/
OPTIONS RESULTS /*--------------------------*/
ARG BBS_NODE /* Grab the Node Number */
Address value 'TempRexx-'BBS_NODE /* Tell Arexx where the BBS Is
----------------------------------------------------------------------------*/
VERS = '1.0' /* DON'T CHANGE! /
----------------------------------------------------------------------------*/
PROGRAMNAME = '200 Year Calender' /* DON'T CHANGE! /
----------------------------------------------------------------------------*/
V_DATE = '10-09-93' /* DON'T CHANGE! /
----------------------------------------------------------------------------*/
'Getvar' 43 /* UserName */
RUName = (result) /* Name UPPER-CASE */
Bufferflush /* */
signal ON ERROR /* */
signal ON HALT /* */
signal ON SYNTAX /* */
signal ON FAILURE /* */
signal ON IOERR /* */
/*--------------------------*/
'Getvar' 0 /* Path where the BBS is */
BBS = (result) /* located (don't change!) */
/*--------------------------*/
'Getvar' 4 /* Path to the Text: Dir*/
STF = (result) /* */
/*----------------------*/
'Getvar' 16 /* */
DATE = (result) /* DATE */
/*----------------------*/
'Getvar' 17 /* */
TIM = (result) /* TIME */
/*----------------------*/
'Getvar' 18 /* Name of the BBS */
SYSTEM = (result) /* (don't change!) */
/*----------------------*/
'Getvar' 109 /* User Level */
LEV = (result) /* (don't change!) */
/*----------------------*/
'Getvar' 208 /* UserSlotNumber(User#)*/
SN = (result) /* (don't change!) */
/*----------------------------------------------------------------------*/
/*address command 'setenv NODE-'BBS_NODE' 'BBS_NODE'' /* No InterNode-MSGs*/*/
/*
vel = REVERSE(''LEV'')
IF LENGTH(''LEV'')=3 THEN DO
vell = SUBSTR(''vel'',1,1)
end
IF LENGTH(''LEV'')=2 THEN DO
vell = SUBSTR(''vel'',1,1)
end
vel = REVERSE(''LEV'')
vel = REVERSE(''vell'')
IF vel = 0 THEN DO
l=E
A.29 = 'English'
CALL START
END
IF vel = 2 THEN DO
l=E
A.29 = 'English'
CALL START
END
IF vel = 1 THEN DO
l=G
A.29 = 'German '
CALL START
END
IF vel = 3 THEN DO
l=G
A.29 = 'German '
CALL START
END
*/
l=E
a=1
START:
CLS
/*---------------------------------------------------------------*/
MESSAGE
SENDSTRING '
SKYLINE 200 YearCalendar:
Loading data...'
LOOP_2:
/* (B) Month | (A) Year 1901-2000 */
/* | */
/* 123456789012 | */
S.1 = '400351362402'; A.1925=S.1 ; A.1953=S.1 ; A.1981=S.1 ; B.2009=S.1 ; B.2037=S.1 ; B.2065=S.1 ; B.2093=S.1
S.2 = '511462403513'; A.1926=S.2 ; A.1954=S.2 ; A.1982=S.2 ; B.2010=S.2 ; B.2038=S.2 ; B.2066=S.2 ; B.2094=S.2
S.3 = '622503514624'; A.1927=S.3 ; A.1955=S.3 ; A.1983=S.3 ; B.2011=S.3 ; B.2039=S.3 ; B.2067=S.3 ; B.2095=S.3
S.4 = '034025036146'; A.1928=S.4 ; A.1956=S.4 ; A.1984=S.4 ; B.2012=S.4 ; B.2040=S.4 ; B.2068=S.4 ; B.2096=S.4
S.5 = '255136140250'; A.1901=S.5 ; A.1929=S.5 ; A.1957=S.5 ; A.1985=S.5 ; B.2013=S.5 ; B.2041=S.5 ; B.2069=S.5 ; B.2097=S.5
S.6 = '366240251361'; A.1902=S.6 ; A.1930=S.6 ; A.1958=S.6 ; A.1986=S.6 ; B.2014=S.6 ; B.2042=S.6 ; B.2070=S.6 ; B.2098=S.6
S.7 = '400351362402'; A.1903=S.7 ; A.1931=S.7 ; A.1959=S.7 ; A.1987=S.7 ; B.2015=S.7 ; B.2043=S.7 ; B.2071=S.7 ; B.2099=S.7
S.8 = '512503514624'; A.1904=S.8 ; A.1932=S.8 ; A.1960=S.8 ; A.1988=S.8 ; B.2016=S.8 ; B.2044=S.8 ; B.2072=S.8 ;
S.9 = '033614625035'; A.1905=S.9 ; A.1933=S.9 ; A.1961=S.9 ; A.1989=S.9 ; B.2017=S.9 ; B.2045=S.9 ; B.2073=S.9 ;
S.10= '144025036146'; A.1906=S.10; A.1934=S.10; A.1962=S.10; A.1990=S.10; B.2018=S.10; B.2046=S.10; B.2074=S.10;
S.11= '255136140250'; A.1907=S.11; A.1935=S.11; A.1963=S.11; A.1991=S.11; B.2019=S.11; B.2047=S.11; B.2075=S.11;
S.12= '360351362402'; A.1908=S.12; A.1936=S.12; A.1964=S.12; A.1992=S.12; B.2020=S.12; B.2048=S.12; B.2076=S.12;
S.13= '511462403513'; A.1909=S.13; A.1937=S.13; A.1965=S.13; A.1993=S.13; B.2021=S.13; B.2049=S.13; B.2077=S.13;
S.14= '622503514624'; A.1910=S.14; A.1938=S.14; A.1966=S.14; A.1994=S.14; B.2022=S.14; B.2050=S.14; B.2078=S.14;
S.15= '033614625035'; A.1911=S.15; A.1939=S.15; A.1967=S.15; A.1995=S.15; B.2023=S.15; B.2051=S.15; B.2079=S.15;
S.16= '145136140250'; A.1912=S.16; A.1940=S.16; A.1968=S.16; A.1996=S.16; B.2024=S.16; B.2052=S.16; B.2080=S.16;
S.17= '366240251361'; A.1913=S.17; A.1941=S.17; A.1969=S.17; A.1997=S.17; B.2025=S.17; B.2053=S.17; B.2081=S.17;
S.18= '400351362402'; A.1914=S.18; A.1942=S.18; A.1970=S.18; A.1998=S.18; B.2026=S.18; B.2054=S.18; B.2082=S.18;
S.19= '511462403513'; A.1915=S.19; A.1943=S.19; A.1971=S.19; A.1999=S.19; B.2027=S.19; B.2055=S.19; B.2083=S.19;
S.20= '623614625035'; A.1916=S.20; A.1944=S.20; A.1972=S.20; B.2000=S.20; B.2028=S.20; B.2056=S.20; B.2084=S.20;
S.21= '144025036146'; A.1917=S.21; A.1945=S.21; A.1973=S.21; B.2001=S.21; B.2029=S.21; B.2057=S.21; B.2085=S.21;
S.22= '255136140250'; A.1918=S.22; A.1946=S.22; A.1974=S.22; B.2002=S.22; B.2030=S.22; B.2058=S.22; B.2086=S.22;
S.23= '366240251361'; A.1919=S.23; A.1947=S.23; A.1975=S.23; B.2003=S.23; B.2031=S.23; B.2059=S.23; B.2087=S.23;
S.24= '401462403513'; A.1920=S.24; A.1948=S.24; A.1976=S.24; B.2004=S.24; B.2032=S.24; B.2060=S.24; B.2088=S.24;
S.25= '622503514624'; A.1921=S.25; A.1949=S.25; A.1977=S.25; B.2005=S.25; B.2033=S.25; B.2061=S.25; B.2089=S.25;
S.26= '033614625035'; A.1922=S.26; A.1950=S.26; A.1978=S.26; B.2006=S.26; B.2034=S.26; B.2062=S.26; B.2090=S.26;
S.27= '144025036146'; A.1923=S.27; A.1951=S.27; A.1979=S.27; B.2007=S.27; B.2035=S.27; B.2063=S.27; B.2091=S.27;
S.28= '256240251361'; A.1924=S.28; A.1952=S.28; A.1980=S.28; B.2008=S.28; B.2036=S.28; B.2064=S.28; B.2092=S.28;
START2:
CLS
MESSAGE
MESSAGE '
SKYLINE 200 YearCalendar V'VERS' Designed for Skyline by Casa Nova ['V_DATE']
'
MESSAGE '
'COPIES('_',80)'
'
MESSAGE
Q0:
MESSAGE
Q0.E = SENDSTRING '
Please enter the Year (
1901
-
2099
) or
[
?
]
for Instruction :
'
Q0.G = SENDSTRING '
Bitte das Jahr eingeben (
1901
-
2099
) oder
[
?
]
fuer Erklaerung :
'
Q0.l
QUERY
YEAR=result
YER=result
IF YEAR='q' THEN DO
CALL DONE2
END
IF YEAR='?' THEN DO
Q1.E = MESSAGE '
This 200-Year-Calendar displays the weekday for a requested day.
'
Q2.E = MESSAGE '
Just enter the Date you are seaching for: YEAR, MONTH, DAY.
'
Q3.E = MESSAGE '
Now the program displays a complete month of the requested year.
'
Q4.E = MESSAGE '
The day you`re searching for is marked.
'
Q5.E = MESSAGE '
Leap-Years will be correct calculated and shown.
'
Q1.G = MESSAGE '
Der 200-Jahr-Kalender zeigt den Wochentag zu einem eingegebenen Datum.
'
Q2.G = MESSAGE '
Die Eingabe des Datums erfolgt in der Reihenfolge: JAHR, MONAT, TAG.
'
Q3.G = MESSAGE '
Anschliessend wird eine Monatsuebersicht des gewaehlten Jahres/Monats
'
Q4.G = MESSAGE '
angezeigt. Der gesuchte Tag wird darin markiert.
'
Q5.G = MESSAGE '
Schaltjahre werden korrekt berechnet und angezeigt.
'
MESSAGE
Q9.E= SENDSTRING '
Continue with
[
RETURN
]
or
[
Q
]
uit:
'
Q9.G= SENDSTRING '
Weiter mit
[
RETURN
]
oder
[
E
]
nde:
'
MESSAGE
Q1.l
Q2.l
Q3.l
Q4.l
Q5.l
MESSAGE
MESSAGE
Q9.l
GETCHAR
GOON =upper(RESULT)
IF GOON='Q' THEN DO
CALL DONE
END
IF GOON='E' THEN DO
CALL DONE
END
CALL START2
END
IF YEAR>2099 THEN DO
Q0e.E = MESSAGE '
Can`t allocate that Year. Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q0
END
IF YEAR<1901 THEN DO
Q0e.E = MESSAGE '
Can`t allocate that Year. Try again!
'
Q0e.G = MESSAGE '
Die Jahresangabe ist zu klein. Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q0
END
IF DATATYPE(''YER'','n') then
CALL GO_ON
else do
Q0v.E = MESSAGE '
ERROR:
Ooops, don`t use alphanumerics. Use
numbers
only!
'
Q0w.E =SENDSTRING ''
Q0v.G = MESSAGE '
Verwende keine Buchstaben.
'
Q0w.G = MESSAGE '
Benutze nur
Zahlen
zur Eingabe!
'
MESSAGE
Q0v.l
Q0w.l
MESSAGE
MESSAGE
CALL Q0
END
GO_ON:
max1=4
min1=4
IF LENGTH(''YER'')>max1 then do
Q0a.E = MESSAGE '
That number is too long. Try again...
'
Q0a.G = MESSAGE '
Die angegebene Zahl ist zu lang! Versuchs nochmal...
'
MESSAGE
Q0a.l
MESSAGE
MESSAGE
CALL Q0
END
IF LENGTH(''YER'')<min1 then do
Q0e.E = MESSAGE '
What`s that...? Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q0
END
FLAG = SUBSTR(''YEAR'',1,2,) /* This one checks if User has */
IF FLAG=19 THEN DO /* entered 19xx ... */
YEAR=A.YEAR
END
IF FLAG=20 THEN DO /* ... or 20xx */
YEAR=B.YEAR
END
Q1:
MESSAGE
Q0.E = SENDSTRING '
Please enter the Month (
1
-
12
):
'
Q0.G = SENDSTRING '
Bitte den Monat eingeben (
1
-
12
):
'
Q0.l
QUERY
MONTH=result
C_MOM=result
IF MONTH>12 THEN DO
Q0e.E = MESSAGE '
That number is too big. Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q1
END
IF MONTH<1 THEN DO
Q0e.E = MESSAGE '
What`s that? Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q1
END
IF DATATYPE(''MONTH'','n') then
CALL GO_ON2
else do
Q0v.E = MESSAGE '
ERROR:
Ooops, don`t use alphanumerics. Use
numbers
only!
'
Q0w.E =SENDSTRING ''
Q0v.G = MESSAGE '
Verwende keine Buchstaben.
'
Q0w.G = MESSAGE '
Benutze nur
Zahlen
zur Eingabe!
'
MESSAGE
Q0v.l
Q0w.l
MESSAGE
MESSAGE
CALL Q1
END
GO_ON2:
max1=2
min1=1
IF LENGTH(''MONTH'')>max1 then do
Q0a.E = MESSAGE '
That number is too long. Try again...
'
Q0a.G = MESSAGE '
Die angegebene Zahl ist zu lang! Versuchs nochmal...
'
MESSAGE
Q0a.l
MESSAGE
MESSAGE
CALL Q1
END
IF LENGTH(''MONTH'')<min1 then do
Q0e.E = MESSAGE '
What`s that...? Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q1
END
CECK_YEAR = SUBSTR(''DATE'',7,2,) /* Aktuelles Jahr */
CHECK_YEAR = 19||CECK_YEAR
YE=1900 /* 1. Schaltjahr 1900 */
DO A = 1 TO 49 /* 1901-2099 (= 49) */
YE=YE+4 /* Alle 4 Jahre */
IF YE = YER THEN DO
SJ1.E = '
The Year'
SJ1.G = '
Das Jahr'
SJ2.E = '
Leap-Year. '
SJ2.G = '
Schaltjahr.'
Q4e = '
'YER
IF CHECK_YEAR < YER THEN DO
Q4d.E = '
is a'
Q4d.G = '
ist ein'
END
IF CHECK_YEAR > YER THEN DO
Q4d.E = '
was a'
Q4d.G = '
war ein'
END
IF CHECK_YEAR = YER THEN DO
Q4d.E = '
is a'
Q4d.G = '
ist ein'
END
CALL NEXT0 /* Schaltjahr -> NEXT: */
END
IF YE ~= YER THEN DO
SJ1.E = '
'
SJ1.G = '
'
SJ2.E = '
'
SJ2.G = '
'
Q4d.E = '
'
Q4d.G = '
'
Q4e = '
'
END
END A
NEXT0:
IF month = 1 THEN DO
mont.E = 'January'
mont.G = 'Januar'
mont# = '01'
mon=31
END
IF month = 2 THEN DO
mont.E = 'February'
mont.G = 'Februar'
mont# = '02'
YE=1900 /* 1. Schaltjahr 1900 */
DO F = 1 TO 49 /* 1901-2099 (= 49) */
YE=YE+4 /* Alle 4 Jahre */
IF YE = YER THEN DO
mon=29
CALL NEXT /* Schaltjahr -> NEXT: */
END
IF YE ~= YER THEN DO
mon=28
END
END F
END
IF month = 3 THEN DO
mont.E = 'March'
mont.G = 'Maerz'
mont# = '03'
mon=31
END
IF month = 4 THEN DO
mont.E = 'April'
mont.G = 'April'
mont# = '04'
mon=30
END
IF month = 5 THEN DO
mont.E = 'May'
mont.G = 'Mai'
mont# = '05'
mon=31
END
IF month = 6 THEN DO
mont.E = 'June'
mont.G = 'Juni'
mont# = '06'
mon=30
END
IF month = 7 THEN DO
mont.E = 'July'
mont.G = 'Juli'
mont# = '07'
mon=31
END
IF month = 8 THEN DO
mont.E = 'August'
mont.G = 'August'
mont# = '08'
mon=31
END
IF month = 9 THEN DO
mont.E = 'September'
mont.G = 'September'
mont# = '09'
mon=30
END
IF month = 10 THEN DO
mont.E = 'October'
mont.G = 'Oktober'
mont# = '10'
mon=31
END
IF month =11 THEN DO
mont.E = 'November'
mont.G = 'November'
mont# = '11'
mon=30
END
IF month =12 THEN DO
mont.E = 'December'
mont.G = 'Dezember'
mont# = '12'
mon=31
END
NEXT: /* Schaltjahr */
MONTH = SUBSTR(''YEAR'',''MONTH'',1,)
MESSAGE
Q2.E = SENDSTRING '
Please enter the Day (
1
-
'mon'
):
'
Q2.G = SENDSTRING '
Bitte den Tag eingeben (
1
-
'mon'
):
'
Q2:
Q2.l
QUERY
DAY=result
DAT=result
IF DAY>mon THEN DO
Q2a.E = MESSAGE '
Number is too big. The
'mont.l'
only has
'mon'
days!
'
Q2.E = SENDSTRING '
Enter a number between
1
and
'mon'
:
'
Q2a.G = MESSAGE '
Zahl ist zu gross. Der Monat
'mont.l'
hat nur
'mon'
Tage.
'
Q2.G = SENDSTRING '
Gib` eine Zahl zwischen
1
und
'mon'
ein:
'
MESSAGE
Q2a.l
Q2b.l
MESSAGE
MESSAGE
CALL Q2
END
IF DAY<1 THEN DO
Q0e.E = MESSAGE '
What`s that? Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q2
END
IF DATATYPE(''DAY'','n') then
CALL GO_ON3
else do
Q0v.E = MESSAGE '
ERROR:
Ooops, don`t use alphanumerics. Use
numbers
only!
'
Q0w.E =SENDSTRING ''
Q0v.G = MESSAGE '
Verwende keine Buchstaben.
'
Q0w.G = MESSAGE '
Benutze nur
Zahlen
zur Eingabe!
'
MESSAGE
Q0v.l
Q0w.l
MESSAGE
MESSAGE
CALL Q2
END
GO_ON3:
max3=2
min3=1
IF LENGTH(''DAY'')>max3 then do
Q0a.E = MESSAGE '
That number is too long. Try again...
'
Q0a.G = MESSAGE '
Die angegebene Zahl ist zu lang! Versuchs nochmal...
'
MESSAGE
Q0a.l
MESSAGE
MESSAGE
CALL Q2
END
IF LENGTH(''DAY'')<min3 then do
Q0e.E = MESSAGE '
What`s that...? Try again!
'
Q0e.G = MESSAGE '
Was soll denn das sein? Versuchs nochmal!
'
MESSAGE
Q0e.l
MESSAGE
MESSAGE
CALL Q2
END
WDAY.E.1 ='Sunday'
WDAY.G.1 ='Sonntag'
WDAY.E.2 ='Monday'
WDAY.G.2 ='Montag'
WDAY.E.3 ='Tuesday'
WDAY.G.3 ='Dienstag'
WDAY.E.4 ='Wednesday'
WDAY.G.4 ='Mittwoch'
WDAY.E.5 ='Thursday'
WDAY.G.5 ='Donnerstag'
WDAY.E.6 ='Friday'
WDAY.G.6 ='Freitag'
WDAY.E.7 ='Saturday'
WDAY.G.7 ='Samstag'
WDAY.E.8 ='Sunday'
WDAY.G.8 ='Sonntag'
WDAY.E.9 ='Monday'
WDAY.G.9 ='Montag'
WDAY.E.10='Tuesday'
WDAY.G.10='Dienstag'
WDAY.E.11='Wednesday'
WDAY.G.11='Mittwoch'
WDAY.E.12='Thursday'
WDAY.G.12='Donnerstag'
WDAY.E.13='Friday'
WDAY.G.13='Freitag'
WDAY.E.14='Saturday'
WDAY.G.14='Samstag'
WDAY.E.15='Sunday'
WDAY.G.15='Sonntag'
WDAY.E.16='Monday'
WDAY.G.16='Montag'
WDAY.E.17='Tuesday'
WDAY.G.17='Dienstag'
WDAY.E.18='Wednesday'
WDAY.G.18='Mittwoch'
WDAY.E.19='Thursday'
WDAY.G.19='Donnerstag'
WDAY.E.20='Friday'
WDAY.G.20='Freitag'
WDAY.E.21='Saturday'
WDAY.G.21='Samstag'
WDAY.E.22='Sunday'
WDAY.G.22='Sonntag'
WDAY.E.23='Monday'
WDAY.G.23='Montag'
WDAY.E.24='Tuesday'
WDAY.G.24='Dienstag'
WDAY.E.25='Wednesday'
WDAY.G.25='Mittwoch'
WDAY.E.26='Thursday'
WDAY.G.26='Donnerstag'
WDAY.E.27='Friday'
WDAY.G.27='Freitag'
WDAY.E.28='Saturday'
WDAY.G.28='Samstag'
WDAY.E.29='Sunday'
WDAY.G.29='Sonntag'
WDAY.E.30='Monday'
WDAY.G.30='Montag'
WDAY.E.31='Tuesday'
WDAY.G.31='Dienstag'
WDAY.E.32='Wednesday'
WDAY.G.32='Mittwoch'
WDAY.E.33='Thursday'
WDAY.G.33='Donnerstag'
WDAY.E.34='Friday'
WDAY.G.34='Freitag'
WDAY.E.35='Saturday'
WDAY.G.35='Samstag'
WDAY.E.36='Sunday'
WDAY.G.36='Sonntag'
WDAY.E.37='Monday'
WDAY.G.37='Montag'
WDY.1 =Su; WDY.8=Su ;WDY.15=Su; WDY.22=Su; WDY.29=Su; WDY.36=Su
WDY.2 =Mo; WDY.9=Mo ;WDY.16=Mo; WDY.23=Mo; WDY.30=Mo; WDY.37=Mo
WDY.3 =Tu; WDY.10=Tu ;WDY.17=Tu; WDY.24=Tu; WDY.31=Tu;
WDY.4 =We; WDY.11=We ;WDY.18=We; WDY.25=We; WDY.32=We;
WDY.5 =Th; WDY.12=Th ;WDY.19=Th; WDY.26=Th; WDY.33=Th;
WDY.6 =Fr; WDY.13=Fr ;WDY.20=Fr; WDY.27=Fr; WDY.34=Fr;
WDY.7 =Sa; WDY.14=Sa ;WDY.21=Sa; WDY.28=Sa; WDY.35=Sa;
WT.1=' '; WT.8=' ';WT.15=' ';WT.22=' ';WT.29=' ';WT.36=' ';
WT.2=' '; WT.9=' ';WT.16=' ';WT.23=' ';WT.30=' ';WT.37=' ';
WT.3=' '; WT.10=' ';WT.17=' ';WT.24=' ';WT.31=' ';
WT.4=' '; WT.11=' ';WT.18=' ';WT.25=' ';WT.32=' ';
WT.5=' '; WT.12=' ';WT.19=' ';WT.26=' ';WT.33=' ';
WT.6=' '; WT.13=' ';WT.20=' ';WT.27=' ';WT.34=' ';
WT.7=' '; WT.14=' ';WT.21=' ';WT.28=' ';WT.35=' ';
WY.E.SU = 'Sunday '
WY.G.SU = 'Sonntag '
WY.E.MO = 'Monday '
WY.G.MO = 'Montag '
WY.E.TU = 'Tuesday '
WY.G.TU = 'Dienstag '
WY.E.WE = 'Wednesday '
WY.G.WE = 'Mittwoch '
WY.E.TH = 'Thursday '
WY.G.TH = 'Donnerstag'
WY.E.FR = 'Friday '
WY.G.FR = 'Freitag '
WY.E.SA = 'Saturday '
WY.G.SA = 'Samstag '
DAY=DAY+MONTH
D=1
Z=0
A=0
WD=1
WT=1
T=1
/*----------- ANSI DEFINE --------------*/
COL1='
' /* + Border */
COL2='
' /* + Field 1 */
COL3='
' /* + Field 2 */
COL4='
' /* + Days */
COL5='
' /* + Weekdays */
COL6='
' /* + The Day Field */
COL7='
' /* + Day in Field */
COL8='
' /* + Marker in Day Field */
COL9='
' /* + Month & Year */
/*--------------------------------------*/
DO T = 1 TO MON
Z=MONTH+T
WT.Z=T
MIN=2
IF LENGTH(''WT.Z'')<MIN THEN DO /* If Mins only 1 digit */
WT.Z=INSERT(' ',''WT.Z'') /* add 0 for display! */
END /* */
IF DAT=WT.Z THEN DO /* If Mins only 1 digit */
WT.Z=INSERT(''COL6'',''COL8'['COL7''WT.Z''COL8']'COL3'') /* add 0 for display! */
END /* */
MIN3=4
IF LENGTH(''WT.Z'')<MIN3 THEN DO /* If Mins only 1 digit */
WT.Z=INSERT(''WT.Z'',' ',1,3,' ') /* add 0 for display! */
END /* */
SENDSTRING '
.
'
END T
Sendstring COPIES('',MON)
Sendstring '
'COPIES(' ',MON)'
'
Sendstring COPIES('',MON)
Q4a.E = '
The 'DAT'. of 'MONT.L' 'YER'
'
Q4b.E = '
was a
'
Q4c.E = '
'WDAY.L.DAY'.
'
Q4a.G = '
Der 'DAT'. 'MONT.L' 'YER'
'
Q4b.G = '
war ein
'
Q4c.G = '
'WDAY.L.DAY'.
'
/*--------------------------------------------------------------*/
CECK_YEAR = SUBSTR(''DATE'',7,2,) /* Aktuelles Jahr */
CHECK_YEAR = 19||CECK_YEAR
CHECK_YER = YER
IF CHECK_YEAR > CHECK_YER THEN DO
Q4b.E = '
was a
'
Q4b.G = '
war ein
'
CALL NEXT2
END
IF CHECK_YEAR < CHECK_YER THEN DO
Q4b.E = '
is a
'
Q4b.G = '
ist ein
'
CALL NEXT2
END
CHECK_MONTH = SUBSTR(''DATE'',1,2,) /* Aktueller Monat */
IF CHECK_MONTH > MONT# THEN DO
Q4b.E = '
was a
'
Q4b.G = '
war ein
'
CALL NEXT2
END
IF CHECK_MONTH < MONT# THEN DO
Q4b.E = '
is a
'
Q4b.G = '
ist ein
'
CALL NEXT2
END
CHECK_DAY = SUBSTR(''DATE'',4,2,) /* Aktueller Tag */
IF CHECK_DAY=DAT THEN DO
Q4a.E = '
Today it`s 'WDAY.L.DAY'!
'
Q4b.E = '
'
Q4c.E = '
('DAT'. 'MONT.L' 'YER')
'
Q4b.E = '
'
Q4b.G = '
'
Q4a.G = '
Heute ist 'WDAY.L.DAY'!
'
Q4b.G = '
'
Q4c.G = '
('DAT'. 'MONT.L' 'YER')
'
CALL NEXT2
END
IF CHECK_DAY<DAT THEN DO
Q4b.E = '
is a
'
Q4b.G = '
ist ein
'
CALL NEXT2
END
IF CHECK_DAY>DAT THEN DO
Q4b.E = '
was a
'
Q4b.G = '
war ein
'
END
/*------------------------- Display -----------------------*/
NEXT2:
MESSAGE
MESSAGE ' 'COL1'
___________________________________________'
MESSAGE ' 'COL1'|'COL2' 'COL1'|'
MESSAGE ' 'COL1'|'COL2' 'COL9''CENTER( MONT.L YER,41)' 'COL1'|'
MESSAGE ' 'COL1'|'COL2'
___________________________________________
'COL1'|'
MESSAGE ' 'COL1'|'COL3' 'COL1'|'
MESSAGE ' 'COL1'|'COL3' 'COL5' 'WY.L.SU' 'COL4''WT.1''COL4' 'WT.8' 'COL4''WT.15' 'COL4''WT.22' 'COL4''WT.29''COL4''WT.36' 'COL1'|'
MESSAGE ' 'LEFT(Q4a.l,38)' 'COL1'|'COL3' 'COL5' 'WY.L.MO' 'COL4''WT.2''COL4' 'WT.9' 'COL4''WT.16' 'COL4''WT.23' 'COL4''WT.30''COL4''WT.37' 'COL1'|'
MESSAGE ' 'LEFT(Q4b.l Q4c.l,40)' 'COL1'|'COL3' 'COL5' 'WY.L.TU' 'COL4''WT.3''COL4' 'WT.10''COL4' 'WT.17''COL4' 'WT.24''COL4' 'WT.31' 'COL1'|'
MESSAGE ' 'LEFT(Q4e Q4d.L SJ2.l,39)' 'COL1'|'COL3' 'COL5' 'WY.L.WE' 'COL4''WT.4''COL4' 'WT.11''COL4' 'WT.18''COL4' 'WT.25''COL4' 'WT.32' 'COL1'|'
MESSAGE ' 'COL1'|'COL3' 'COL5' 'WY.L.TH' 'COL4''WT.5''COL4' 'WT.12''COL4' 'WT.19''COL4' 'WT.26''COL4' 'WT.33' 'COL1'|'
MESSAGE ' 'COL1'|'COL3' 'COL5' 'WY.L.FR' 'COL4''WT.6''COL4' 'WT.13''COL4' 'WT.20''COL4' 'WT.27''COL4' 'WT.34' 'COL1'|'
MESSAGE ' 'COL1'|'COL3' 'COL5' 'WY.L.SA' 'COL4''WT.7''COL4' 'WT.14''COL4' 'WT.21''COL4' 'WT.28''COL4' 'WT.35' 'COL1'|'
MESSAGE ' 'COL1'|'COL3'
___________________________________________
'COL1'|'
Q30a.E= SENDSTRING '
[
A
]
gain,
[
Q
]
uit:
'
Q30a.G= SENDSTRING '
[
N
]
ochmal oder
[
E
]
nde:
'
Q30a.l
ASK_AGAIN:
GETCHAR
L2 = upper(result)
SELECT
WHEN L2='Q' THEN CALL DONE
WHEN L2='A' THEN CALL START
WHEN L2='E' THEN CALL DONE
WHEN L2='N' THEN CALL START
OTHERWISE CALL ASK_AGAIN
END
/*---------------------------------------------------------*/
DONE:
QUIT.E= SENDSTRING 'Quit'
QUIT.G= SENDSTRING 'Ende'
QUIT.l
MESSAGE
MESSAGE
MESSAGE
MESSAGE '
200 Year Calendar, written for Tempest BBS by Casa Nova.
'
MESSAGE
DONE2:
/*address command 'DELETE ENV:NODE-'BBS_NODE' 'BBS_NODE' quiet' /*InterNode-MSGs*/*/
/*---------------------------------------------------------*/
'exit'
exit
SYNTAX:
message "**SYNTAX ERROR** in line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit
ERROR:
message "**IO ERROR** in line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit
HALT:
message "**HALT** in line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit
FAILURE:
message "**FAILURE** in line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit
NOVALUE:
message "**NOVALUE** in line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit
IOERR:
message "**IOERR** in 'programname' line: " SIGL " Severity: " RC errortext(RC)
message "Notify Sysop Immediately!! -- Hit any key "
message " "
getchar
'exit'
exit